package main

import "fmt"

/**
数据类型
	%d可以获取整数的值
	%t可以获取bool类型的值
	%f可以获取浮点类型的值
	%c可以获取字符类型的值
	%s可以获取字符串的值
	%T可以输出值的类型
*/
func main() {
	/**
	布尔类型
	*/
	//	声明一个bool类型，bool类型的默认值是false
	var flag bool
	fmt.Printf("%d", flag)

	//	修改变量的值
	flag = true
	fmt.Println(flag)

	//	自动推导类型,如果使用的是var来声明的变量，等号前面就不需要添加冒号了
	var aa = true
	fmt.Println(aa)
	//	如果没有使用var，自动推导类型就需要使用:来声明了
	bb := false
	fmt.Println(bb)
	fmt.Printf("bb=%t", bb)

	/**
	浮点类型
	*/
	var fl1 float32
	fl1 = 3.14
	fmt.Println(fl1)

	//	自动推导类型
	var fl2 = 3.55
	fl3 := 876.96
	fmt.Println(fl2, fl3)
	fmt.Printf("fl3=%f", fl3)

	/**
	字符类型出错
	*/
	var cc byte //go中的字符类型是byte
	fmt.Println(cc)
	cc = 'a' //给变量赋值
	fmt.Printf("%c", cc)
	//如果是字符，那么ASCII表中会有相应的整数来表示对应的字符
	var dd byte
	dd = 97
	fmt.Printf("%c\n", dd)

	//使用%d获取一个整数，ee对应的是e,e在ASCII表中对应有整数
	ee := 'e'
	fmt.Printf("%d\n", ee)
	//dfadfa"fdsfa"fasdfa转移字符\
	fmt.Printf("dfadfa\"fdsfa\"fasdfa")

	/**
	字符串类型
	*/
	var str string
	str = "staa"
	fmt.Printf(str)

	var str3 = "fdaf dsaf gasg"
	fmt.Printf(str3)

	str2 := "fdsaf"
	fmt.Printf(str2)
	fmt.Printf("%s\n", str2)
	//字符串的长度len()
	i := len(str3)
	fmt.Println(i)
	fmt.Printf("t=%T", str2)

}
